// gulp.task   定义任务
// gulp.src    获取文件流
// gulp.pipe   处理文件流
// gulp.dest   输出文件流
// gulp.watch  监听文件
// gulp.start  执行某个任务


var gulp = require("gulp");
var less = require("gulp-less");
var autoprefixer = require("gulp-autoprefixer");
var rename = require("gulp-rename");
var cleancss = require("gulp-clean-css");
var concat = require("gulp-concat");
var bs = require("browser-sync");

gulp.task("serve", function(){
    bs.init({
        server: {
            baseDir: "./" //服务主目录
        },
        startPath: "html/*.html" //服务启动主文件
    });
    
    gulp.watch("./{html,js}/*.{html,js}", bs.reload);
})

gulp.task("lessc", function(){
  gulp.src("less/*.less")
    .pipe( less() )
    .pipe( autoprefixer({browsers: ['last 2 versions']}) )
    .pipe( gulp.dest("css/") )
    .pipe( cleancss() )
    .pipe( rename({suffix: ".min"}) )
    .pipe( gulp.dest("css/") );
})

gulp.task("css-concat", function(){
    gulp.src("css/*.min.css")
        .pipe( concat("all.css") )
        .pipe( gulp.dest("min/") );
})

gulp.task("watch", function(){
    gulp.watch("less/*.less", ["lessc"]);
})







//var gulp = require("gulp");
//var less = require("gulp-less");
//var bs = require("browser-sync").create();

//自动化构建工具grunt，gulp，webpack
//基于这些工具之上又有各种各样的功能插件
//css预处理编译
//css自动加前缀
//合并文件
//压缩文件
//加密文件
//图片处理（压缩，合并）
//...

/*
gulp.task("watch", function(){
  gulp.watch("./less/*.less", ["lessc"]);
  // gulp.watch("./html/*.html", ["refresh"]);
  gulp.watch("./html/*.html", bs.reload);
});

gulp.task("lessc", function(){
  gulp.src("./less/*.less")
      .pipe( less() )
      .pipe( gulp.dest("./css/") )
      .pipe( bs.reload({stream: true}) );
});

gulp.task("default", ["watch"], function(){
  bs.init({
    server: {
      baseDir: "./" //服务主目录
    },
    startPath: "html/a.html" //服务启动主文件
  });
});
*/